(* id is a structure to permit garbage collection *)
type id = { id: int }
type context = int ref

let create () = ref 0
let gen context =
	let id = { id = !context } in
	incr context;
	id
